const jwt = require("jsonwebtoken");

/**
 * 生成随机字符串
 */
function randomVerifyCode() {
    const arr = [];
    let i = 0;
    while (i < 6) {
        arr.push("0123456789".charAt(Math.floor(Math.random() * 10)));
        i++;
    }
    return arr.join("");
}

/**
 * 将传入的简单对象，存入 token 中
 * @param {obj} payload 要保存在 token 中信息
 */
function genToken(payload) {
    return jwt.sign(payload, this.app.config.keys, { expiresIn: "2h" });
}

/**
 * 校验并解密 token 字符串
 * @param {string} token 要校验的 token 字符串
 */
function checkToken(token) {
    return jwt.verify(token, this.app.config.keys);
}

module.exports = { randomVerifyCode, genToken, checkToken };
